﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IOT4Week1Day1.Domain.IRepositories
{
    /// <summary>
    /// 泛型仓储接口
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public interface IRepository<T> where T: class  //where T这个是对T类型进行泛型约束
    {
        void Add(T model);

        void Delete(object id);  //所有的类型的基类都是object

        void DeleteAll(string[] ids); //批删

        void Update(T model);

        IQueryable<T> GetTable(); //获取整个表的查询对象IQueryable<T>， 相当于 Select * from T

        T Get(object id);  //根据主键id 获取一条数据（返填）

        int Save(); //保存对数据库的更改
    }
}
